﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using System.Data.Sql;
using G04P1_LogikaBiznesowa;

//http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.aspx
//http://www.reset.ath.bielsko.pl/technologienet/videocasty/programowanie/2012/test-driven-development-cz1.aspx

namespace G04P1_Testy
{
    [TestFixture]
    public class Testy
    {
        [Test]
        public void FirstTest()
        {
            Class1 clasaDoTestow = new Class1(new NorthwindEntities("metadata=res://*/Grupa3Model.csdl|res://*/Grupa3Model.ssdl|res://*/Grupa3Model.msl;provider=System.Data.SqlClient;provider connection string=\";Data Source=.\\sqlexpress;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True\""));

            var sprzedawca1 = clasaDoTestow.ListaProduktow(123);
            var sprzedawca2 = clasaDoTestow.ListaProduktow(96);
            var sprzedawca3 = clasaDoTestow.ListaProduktow(127);
            var sprzedawca4 = clasaDoTestow.ListaProduktow(156);
            var sprzedawca5 = clasaDoTestow.ListaProduktow(42);
            var sprzedawca6 = clasaDoTestow.ListaProduktow(67);
            var sprzedawca7 = clasaDoTestow.ListaProduktow(72);
            var sprzedawca8 = clasaDoTestow.ListaProduktow(104);
            var sprzedawca9 = clasaDoTestow.ListaProduktow(43);

            int recordCount = 1;

            Assert.AreEqual(recordCount, sprzedawca1.Count());
            Assert.AreEqual(recordCount, sprzedawca2.Count());
            Assert.AreEqual(recordCount, sprzedawca3.Count());
            Assert.AreEqual(recordCount, sprzedawca4.Count());
            Assert.AreEqual(recordCount, sprzedawca5.Count());
            Assert.AreEqual(recordCount, sprzedawca6.Count());
            Assert.AreEqual(recordCount, sprzedawca7.Count());
            Assert.AreEqual(recordCount, sprzedawca8.Count());
            Assert.AreEqual(recordCount, sprzedawca9.Count());
        }

        [Test]
        public void SecondTest()
        {
            Class1 clasaDoTestow = new Class1(new NorthwindEntities("metadata=res://*/Grupa3Model.csdl|res://*/Grupa3Model.ssdl|res://*/Grupa3Model.msl;provider=System.Data.SqlClient;provider connection string=\";Data Source=.\\sqlexpress;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True\""));
           
            var sprzedawca1 = clasaDoTestow.ListaProduktow(123);

            Assert.That(sprzedawca1.Count(), Is.EqualTo(1));
        }

        [Test, ExpectedException(typeof(NotSupportedException))]
        public void ThirdTest()
        {
            Class1 clasaDoTestow = new Class1(new NorthwindEntities("metadata=res://*/Grupa3Model.csdl|res://*/Grupa3Model.ssdl|res://*/Grupa3Model.msl;provider=System.Data.SqlClient;provider connection string=\";Data Source=.\\sqlexpress;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True\""));

            throw new NotSupportedException();
        }
    }
}
